package com.kk.xhr.admin.biz;

import com.kk.xhr.admin.controller.request.AppraiseAddRequest;
import com.kk.xhr.admin.controller.request.AppraiseModifyRequest;
import com.kk.xhr.admin.controller.request.AppraiseQueryRequest;
import com.kk.xhr.admin.controller.vo.AppraiseVO;
import com.kk.xhr.common.pojo.AppraiseResultEnum;
import com.kk.xhr.web.vo.PageVO;

import java.util.List;

/**
 * 考评biz服务接口
 *
 * @author kkmystery
 * @version 1.0 2021/3/7
 * @since 1.0.0
 */
public interface IAppraiseBizService {

    /**
     * 分页查询
     *
     * @param request 考评查询request
     * @return AppraiseVO
     */
    PageVO<AppraiseVO> queryPage(AppraiseQueryRequest request);

    /**
     * 查询我的考评
     *
     * @param userId 用户id
     * @return AppraiseVO列表
     */
    List<AppraiseVO> queryMine(Long userId);

    /**
     * 查询部门成员待考评记录
     *
     * @param userId 用户id
     * @return AppraiseVO列表
     */
    List<AppraiseVO> queryMemberAppraise(Long userId);

    /**
     * 添加考评
     *
     * @param request AppraiseAddRequest
     * @return 是否成功
     */
    boolean add(AppraiseAddRequest request);

    /**
     * 修改考评
     *
     * @param id      主键id
     * @param request AppraiseModifyRequest
     * @return 是否成功
     */
    boolean modify(Long id, AppraiseModifyRequest request);

    /**
     * 修改考评状态
     *
     * @param id     主键id
     * @param status 状态
     * @return 是否成功
     */
    boolean modifyStatus(Long id, AppraiseResultEnum status);
}
